#ifndef C_ALGORITHM_CIRCULAR_LINK_H
#define C_ALGORITHM_CIRCULAR_LINK_H

#include <stdbool.h>
#include <stddef.h>

// 不完整类型,隐藏struct link_t 和 struct link_node_t 结构
typedef struct link_t *clink;
typedef struct link_node_t *link_node;

clink link_create(void);

void link_clear(clink);

void link_destory(clink);

bool add_to_link(clink, void *);

bool delete_from_link(clink, void *);

link_node search_link(clink, void *);

size_t link_length(clink);

void link_transver(clink, void (*)(void *));

#endif